import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

// 中间件函数必须命名为middleware或使用export default
export function middleware(request: NextRequest) {
  // 获取请求头中的origin
  const origin = request.headers.get('origin') || ''
  
  // 响应对象
  const response = NextResponse.next()
  
  // 设置CORS头部
  response.headers.set('Access-Control-Allow-Origin', '*')
  response.headers.set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
  response.headers.set('Access-Control-Allow-Headers', 'Content-Type, Authorization')
  
  // 如果是预检请求，直接返回
  if (request.method === 'OPTIONS') {
    return new NextResponse(null, { status: 200, headers: response.headers })
  }
  
  // 继续请求处理
  return response
}

// 配置匹配的路由 - 使用更精确的匹配规则
export const config = {
  // 修改匹配规则，避免过于宽泛的匹配导致问题
  matcher: [
    // API 路由
    '/api/:function*',
    // 排除静态资源和特定路径
    '/((?!_next/static|_next/image|favicon.ico).*)',
  ],
} 